As the sophistication and functionality of printers continue to increase, higher speed printers are required to complete more functions in a timely manner. The demands on the printers are especially relevant in the field of personal computers where the users of high-speed computers desire and expect the printer to provide an enhanced performance equivalent to their computer.
An important limiting factor on the printing speed of conventional printers results from storing a raw band of print data for a page in a page frame buffer and then printing the data from the frame buffer. The frame buffer must be large enough to store the raw band of print data for the entire page and a single, large memory is commonly used for this purpose. For instance, a raw band of 64 scan lines is typically stored in the single, contiguous memory device. Because a single contiguous memory device is used, the 64 scan lines must be stored in the memory from an initial memory address to an ending address. This requires a relatively large memory reserved for storing this page of data.
In conventional printers, after storing the raw band of print data into the memory for a page, the print data is read from the memory and then the page is printed. Because a single contiguous memory is commonly used, all of the print data must be printed for the current page before the memory can be used for the next page. An indication that the entirety of the raw band stored in the memory has been completed for a page must be given before the memory can be used for data on another page. Therefore, as the current page is printing, the portion of the memory which has been read and could be used for storing other print data continually grows. The requirement that the current page must be completely printed before using the memory for print data on the next page is due to the possibility that a printing error may possibly occur. If a printing error occurs at any time while a page is being printed, the beginning of the memory must be re-read in order to print the page. For instance, if a jam recovery occurs while the page is being printed, the start of the memory must be re-read. Therefore, the entire contents of the memory must remain intact until the indication is given that the page has been printed and the process for printing the next page cannot begin until this indication is given in conventional printers.
Another limitation on the speed of conventional printers is the repeated processing and storing of blank data lines (data lines which do not contain any data). Typically, a significant portion on a page consists of blank portions where no text or images will appear. Each blank data line is processed and stored in the same way due to the identical appearance of blank data lines. Therefore, unnecessary time is spent repeating the same processing and storing steps on a typical page.
Accordingly, a printer is desired which more efficiently utilizes the memory when printing pages of print data and thereby enhances the speed and performance of the printer.